1. Technical Field
The present invention relates to data processing systems, and, more particularly, the invention relates to a system and method of improving co-resident operating systems.
2. Description of the Related Art
Recent advances in high-speed networks, workstation processors, and digital audio and video acquisition/compression/display hardware have led to tremendous interest in the problems of supporting the real-time computation and communication requirements of distributed multimedia applications; examples of descriptions of this interest are given in the following:
(1) Processor Capacity Reserves: Operating System Support for Multimedia Applications, Mercer, C. W., Savage, S., Tokuda, H., IEEE Intl. Conf. on Multimedia Computing and Systems, Boston, Mass., May 1994, pp. 90-99.
(2) Adaptive Real-Time Resource Management Supporting Modular Composition of Digital Multimedia Services, M. B. Jones, in Network and Operating System Support for Digital Audio and Video, Proceedings, Fourth Intl. Workshop, Lancaster UK, November 1993, D. Shepherd, et al. (Eds.). Lecture Notes in Computer Science, Vol. 846, pp. 21-28, Springer-Verlag, Heidelberg, 1994.
(3) Dynamic QOS Control Based on Real-Time Threads, H.
Tokuda, T. Kitayama, in Network and Operating System Support for Digital Audio and Video, Proceedings, Fourth Intl,. Workshop, Lancaster, UK, November 1993. D. Shepherd, et al. (Eds.). Lecture Notes in Computer Science, Vol. 846, pp. 124-137, Springer-Verlag, Heidelberg, 1994.
(4) Workstation Support for Time-Critical Applications, J. G.
Hanko, E. M. Kuerner, J. D. Northcutt, G. A. Wall, in Network and Operating System Support for Digital Audio and Video, Proceedings, Second Intl. Workshop, Heidelberg, Germany, November 1992, R. G. Herrtwich (Ed.). Lecture Notes in Computer Science, Vol. 614, pp. 4-9, Springer-Verlag, Heidelbert, 1992.
(5) Scheduling and IPC Mechanisms for Continuous Media, Govindan, R., Anderson, D. P., Proc. ACM Symp. on Operating Systems Principles, ACM Operating Systems Review, Vol. 25, No. 5, October 1991, pp. 68-80.
(6) Kernel Support for Live Digital Audio and Video, K. Jeffay, D. L. Stone, F. D. Smith, Computer Communications, Vol. 15, No. 6. (July/August 1992) pp. 388-395.
(7) Support for Continuous Media in the DASH System, Anderson, D. P., Tzou, S. -Y., Wahbe, R., Govindan, R., Andrews, M., Proc,. Tenth Intl. Conf. on Distributed Computing Systems, Paris, France, May 1990, pp. 54-61.
However, although much research has been performed on the design of real-time operating systems, and much is on-going in the distributed multimedia domain, the vast majority of computers in use today use operating systems that provide no support for real-time computing beyond allowing tasks to manipulate their execution priority. Operating systems that (a) allow programs to specify their real-time performance requirements and (b) guarantee these requirements are met, have been, and are still, largely confined to academic and industrial research laboratories.
Previously, there have been two identifiable approaches to marrying real-time and non-real-time technologies.
First, there have been several attempts to add real-time features such as periodic tasks and priority-inversion-free interprocess communication mechanisms into existing general purpose operating systems such as Unix and Mach. These have been described in items (1), (3), and (4) above.
The second approach is to design a general purpose but dynamically configurable operating system kernel that is capable of accommodating user or application specific process, scheduling and memory management modules. This second approach has been described in SPINxe2x80x94An Extensible Microkernel for Application-Specific Operating System Services, Bershad, B. N., Chambers, C., Egers, S., Maeda, C., McNamee, D., Pardyak, P.,Savage, S., Sirer, E. G., Op. Sys. Review, Vol. 29, No. 1, (January 1995), pp. 74-77.
Other related works include the design of IBM""s VM operating system as described in VM/370 Asymmetric Multiprocessing, Holley, L. H., Parmelee, R. P., Salisbury, C. A, Saul, D. N., IBM Systems Journal, Vol. 18, No. 1, (1979), pp. 47-70, and the general time-division multiplexing technique used in bus and communication protocols. Other attempts to directly embed real-time systems technology into general purpose operating systems include the HeiTS network communication system as described in Implementing HeiTS: Architecture and Implementation Strategy of the Heidelberg High-Speed Transport System, Hehmann D., Herrtwich, R. G., Schulz, W., Schutt, T., Steinmetz, R., Proc. Second Intl. Workshop on Network and Operating System Support for Digital Audio and Video, Springer-Verlag, LNCS, Vol, 614, 1992. In HeiTS, a real-time kernel is embedded into a network device driver and used to maintain real-time communication of multimedia data across a network.
It is an object of the present invention to provide improved support for real-time computing within general purpose operating systems.
It is another object of the invention to provide a system and method of supporting co-resident operating systems in a data processing system.
These and other objects of the invention are achieved as is now described. A method of supporting real-time computing within a general purpose operating system, according to the present invention, is described according to a third approach, differing from the two approaches above. This third approach is that of supporting co-resident operating systems. The interest here lies in developing a methodology for allowing existing, well-understood real-time systems technology to co-exist with commercial, general purpose operating systems to support applications such as desktop multimedia conferencing. Thus, the emphasis here is not so much on the development of raw real-time systems technology per se, but rather on developing a vehicle for the incorporation and use of existing technology in conventional desktop operating systems.
In this invention, the approach is to partition the central processor and other system resources into two virtual machines, first a machine running a largely unmodified general purpose operating system, and second a machine running a real-time kernel, then to multiplex access to the physical hardware by the virtual machines. By allowing the co-existence of two operating systems, this approach allows a clean separation of concerns between the requirements and desired solutions for non-real-time, general purpose computing services and those for real-time services. Thus, the computer programmer or system designer should be able to xe2x80x9cmix-and-matchxe2x80x9d general purpose operating systems and real-time kernels to suit the needs of the system user.
The approach of this invention is based on a set of simple, small executives that execute on the bare machine and allow a general purpose operating system and a real-time kernel to share the hardware in such a fashion that (1) the real-time kernel executes in a predictable manner so that it is possible to analyze the conditions under which real-time tasks will be guaranteed to be feasible, and (2) the general purpose operating system can function correctly with few modifications. Two generic technologies are required to achieve these goals. The first is a facility for multiplexing the co-resident operating systems"" execution on all shared devices. The second is a scheme for partitioning all shared, serially reusable resources such as disk sectors, network buffers, screen pixels, etc., between the operating systems.
Prototype executives for the CPU and a few other devices are described. The executives multiplex accesses to each shared device and partition device resources so that the above two goals are met. The most complex executive is that for the CPU. It operates by executing the general purpose system but preempts its execution at precise, constant intervals to execute the real-time system. Thus at a high-level, the overall system is similar to a cyclic executive as described in The Cyclic Executive Model and Ada, Baker, T. P., Shaw, A. C., Real-Time Systems, Vol. 1, No. 1, (June 1989), pp. 7-26. The cyclic executive described by, T. P. Baker et al alternates between the execution of two programs that happen to be other operating systems. Alternately, the system described herein could be viewed as an implementation of a coarse grained pure-processor-sharing scheduling algorithm as described in A Scheduling Philosophy for Multiprocessing Systems, Lampson, B. W., Comm. of the ACM, Vol., 11, No. 5, (May 1968), pp. 347-360. The scheduling algorithm described by B. W. Lampson, in accord with the improvements of the present invention, has two programs (two operating systems in this case) making forward progress at precise rates.
While the overall approach used in this invention is related to those followed in the design of several other systems as described above, it is believed that the method and apparatus according to the invention contributes a general methodology for resolving the pragmatic problem of allowing existing (and thus future) real-time and non-real-time systems technology to co-exist on the same machine. This approach provides a clean separation of real-time and non-real-time concerns and makes possible an analysis of the feasibility problems for periodic tasks that are allocated a fraction of the processors"" capacity. This analysis contributes to the knowledge of real-time resource allocation problems for architectures such as cyclic executives and the others mentioned above.
There is described herein the design and implementation of the in executive in more detail. According to the invention, the executive is capable of executing the IBM Microkernel (a derivative of the Mach Microkernel) with an OSF/1 server in parallel with a simple real-time kernel as will be described. The overall framework for supporting co-resident operating systems, and the multiplexing and partitioning issues are described in detail. The implementation of the executive is described and both its performance and the impact of the executive and real-time kernel on the performance of the microkernel is assessed. The degree to which the executive can ensure a precise execution rate for the real-time kernel is described. The real-time kernel of the invention is described, and it is shown how the existing theory of scheduling periodic tasks on a single processor can be extended to incorporate the fact that the real-time kernel only executes periodically. Some of the fundamental design issues and limitations of the invention are discussed. This embodiment can be extended to other general purpose operating systems such as Windows and OS/2.